package cn.agiledata.bank.transaction.logic;

import java.util.Date;

import cn.agiledata.bank.hibernateBean.ActionType;
import cn.agiledata.bank.hibernateBean.SubAccount;

/**
 * 批量支付交易摘要
 * 
 * @author maxianbo
 * 
 */
public class BatchTransSummary {
    private String batchNo;

    private SubAccount debit;

    private ActionType actionType;

    private Date beginDate;

    private Double statusAmount;

    private Double statusFee;

    private long statusCount;

    private String transStatus;

    private Double totalAmount;

    private Double totalFee;

    private long totalCount;
    
    private int rejectCount;
    
    private String audit;//判断某一审核员对该批中的交易是否具有审核权限
    
    private int waitAuditCount=0;

    public BatchTransSummary(String batchNo) {
        this.batchNo = batchNo;
    }

    public BatchTransSummary(String batchNo, SubAccount debit,
            ActionType actionType, Date beginDate, Double totalAmount,
            Double totalFee, long totalCount) {
        this.batchNo = batchNo;
        this.debit = debit;
        this.actionType = actionType;
        this.beginDate = beginDate;
        this.totalAmount = totalAmount;
        this.totalFee = totalFee;
        this.totalCount = totalCount;
    }

    public BatchTransSummary(String batchNo, SubAccount debit,
            ActionType actionType, Date beginDate, Double statusAmount,
            Double statusFee, long statusCount, String transStatus) {
        this.batchNo = batchNo;
        this.debit = debit;
        this.actionType = actionType;
        this.beginDate = beginDate;
        this.statusAmount = statusAmount;
        this.statusFee = statusFee;
        this.statusCount = statusCount;
        this.transStatus = transStatus;
        this.totalAmount = statusAmount;
        this.totalFee = statusFee;
        this.totalCount = statusCount;
    }

    public BatchTransSummary(String batchNo, Double totalAmount,
            Double totalFee, long totalCount) {
        this.batchNo = batchNo;
        this.totalAmount = totalAmount;
        this.totalFee = totalFee;
        this.totalCount = totalCount;
    }

    public ActionType getActionType() {
        return this.actionType;
    }

    public void setActionType(ActionType actionType) {
        this.actionType = actionType;
    }

    public String getBatchNo() {
        return this.batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public Date getBeginDate() {
        return this.beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public long getStatusCount() {
        return this.statusCount;
    }

    public void setStatusCount(long statusCount) {
        this.statusCount = statusCount;
    }

    public SubAccount getDebit() {
        return this.debit;
    }

    public void setDebit(SubAccount debit) {
        this.debit = debit;
    }

    public Double getStatusAmount() {
        return this.statusAmount;
    }

    public void setStatusAmount(Double statusAmount) {
        this.statusAmount = statusAmount;
    }

    public Double getStatusFee() {
        return this.statusFee;
    }

    public void setStatusFee(Double statusFee) {
        this.statusFee = statusFee;
    }

    public String getTransStatus() {
        return this.transStatus;
    }

    public void setTransStatus(String transStatus) {
        this.transStatus = transStatus;
    }

    public Double getTotalAmount() {
        return this.totalAmount;
    }

    public void setTotalAmount(Double totalAmount) {
        this.totalAmount = totalAmount;
    }

    public long getTotalCount() {
        return this.totalCount;
    }

    public void setTotalCount(long totalCount) {
        this.totalCount = totalCount;
    }

    public Double getTotalFee() {
        return this.totalFee;
    }

    public void setTotalFee(Double totalFee) {
        this.totalFee = totalFee;
    }

    /**
     * 
     * @return 状态相关总金额（含手续费）
     */
    public Double getStatusAmountWithFee() {
        return new Double(this.statusAmount.doubleValue()
                + this.statusFee.doubleValue());
    }

    /**
     * 
     * @return 总金额（含手续费）
     */
    public Double getTotalAmountWithFee() {
        return new Double(this.totalAmount.doubleValue()
                + this.totalFee.doubleValue());
    }

	public int getRejectCount() {
		return rejectCount;
	}

	public void setRejectCount(int rejectCount) {
		this.rejectCount = rejectCount;
	}

	public String getAudit() {
		return audit;
	}

	public void setAudit(String audit) {
		this.audit = audit;
	}

	public int getWaitAuditCount() {
		return waitAuditCount;
	}

	public void setWaitAuditCount(int waitAuditCount) {
		this.waitAuditCount = waitAuditCount;
	}


    
}
